Tool Demonstration: An IDE for Programming and Proving in Idris
نویسندگان
چکیده
Dependently typed programming languages have a rich type system, which enables developers to combine proofs with programs, sometimes even eroding the boundary between the activities of proving and programming. This introduces new challenges for integrated development environments that must support this boundary. Instead of reimplementing large parts of a compiler, such as a type checker and a totality checker, we extended the Idris compiler with a structured, machine-readable protocol for interacting with other programs. Furthermore, we developed an IDE for Idris in Emacs, which uses this structured input and output mode, that attempts to combine features from both proof assistant interfaces and rich programming environments such as SLIME. The Idris extension turned out to be generally useful, and has been used in applications such as an IRC bot, an interactive website for trying out Idris, and support for other editors.
منابع مشابه
Freeform: a Tool for Sketching Form Designs
This demonstration shows the tool we have developed for hand-sketching user interfaces. Our motivation for developing this tool is to provide an environment where novice programmers can move freely along the design continuum from informal low-fidelity prototypes to completed formal designs. A low-cost digital whiteboard is used to provide a shared work space for Freeform. The tool is integrated...
متن کاملModeling and Optimization of Truck-Shovel Allocation to Mining Faces in Cement Quarry
Truck and shovel are the most common raw material transportation system used in the cement quarry operations. One of the major challenges associated with the cement quarry operations is the efficient allocation of truck and shovel to the mining faces. In order to minimize the truck and shovel operating cost, subject to quantity and quality constraints, the mixed integer linear programing (MILP)...
متن کاملAutomatically Proving Equivalence by Type-Safe Reflection
One difficulty with reasoning and programming with dependent types is that proof obligations arise naturally once programs become even moderately sized. For example, implementing an adder for binary numbers indexed over their natural number equivalents naturally leads to proof obligations for equalities of expressions over natural numbers. The need for these equality proofs comes, in intensiona...
متن کاملStride on saturn m7 for interactive musical instrument design
This demonstration introduces the Stride programming language, the Stride IDE, and the Saturn M7 embedded audio development board. Stride is a declarative and reactive domain specific programming language for real-time sound synthesis, processing, and interaction design. The Stride IDE is a cross-platform integrated development environment for Stride. Saturn M7 is an embedded audio development ...
متن کاملMonitoring Training Load on Malaysian Rugby 15s Players
Background. In order to minimize overtraining, a reliable method is required to analyze training loads. Objectives. The objective of this study was to see if session Rate of Perceived Exertion (sRPE) is a valuable tool for tracking changes in perceived training load and strain among Malaysia rugby 15-a-side players during preparation for a significant game. Methods. Twenty-eight (n=28) elite ...
متن کامل